﻿
#ifndef __FITKCALCULIXINPWRITER_H__
#define __FITKCALCULIXINPWRITER_H__

#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
#include "FITK_Interface/FITKInterfaceIO/FITKAbstractTextWriter.h"

ForwardDeclarNS(Core, FITKAbstractDataObject);

namespace IO
{
    /**
    * @brief Abaqus INP 文件写出器
    * @author fulipeng (fulipengqd@yeah.net)
    * @date 2024-03-07
    */
    class  FITKCalculiXINPWriter : public Interface::FITKAbstractTextWriter
    {
    public:
        explicit FITKCalculiXINPWriter();
        virtual ~FITKCalculiXINPWriter();

        /**
         * @brief 重写run函数
         * @author fulipeng (fulipengqd@yeah.net)
         * @date 2024-03-11
         */
        void run() override;

        /**
         * @brief 发送计算进度
         * @param Progress 进度百分比
         * @author fulipeng (fulipengqd@yeah.net)
         * @date 2024-04-02
         */
        void sendCalculateProgress(int Progress);

        /**
         * @brief 写出每行数据 函数内做每行最大个数限制 循环写出
         * @param strList 多个数据
         * return 返回状态 true 成功 false 失败
         * @author fulipeng (fulipengqd@yeah.net)
         * @date 2024-05-06
         */
        bool writeLineData(QList<QString> strList);

        /**
         * @brief 打印控制台消息
         * @param[i] level 打印级别 1 normal 2 warning 3error
         * @param[i] str 数据
         * @author fulipeng (fulipengqd@yeah.net)
         * @date 2024-04-07
         */
        void consoleMessage(int level, const QString& str) override;

    private:

    };
}



#endif
